"""
* page就是网页的页面层，object就是封装的LoginPage 类:每一个页面一个类，包含业务逻辑和测试对象
    * 页面元素元素定位: 定义为类的属性
    * 页面的操作行为 ： 定义为类的实例方法
"""
from selenium.webdriver.common.by import By
from common.base_page import BasePage


class LoginPage(BasePage):
    # 用户名输入框
    loc_username = (By.XPATH, '//input[@placeholder="请输入手机号/用户名"]')
    # 密码输入框
    loc_password = (By.XPATH, '//input[@placeholder="请输入密码"]')
    # 登录按钮
    loc_login_but = (By.CLASS_NAME, 'login-button')

    # 登录操作 --行为 实例方法 --参数化
    def login(self,uname,pwd):
        # 1、输入账号
        # self.wait_element_visible(self.loc_username).send_keys(uname)
        self.input_text(self.loc_username,uname) # 调用关键字优化
        # 2、输入密码
        self.wait_element_visible(self.loc_password).send_keys(pwd)
        # 3、点击登录按钮
        self.wait_element_clickable(self.loc_login_but).click()